//package com.initialize.gateway.entity;
//
//import lombok.Builder;
//import lombok.Data;
//import org.springframework.security.core.GrantedAuthority;
//import org.springframework.security.core.authority.SimpleGrantedAuthority;
//import org.springframework.security.core.userdetails.UserDetails;
//
//import java.io.Serializable;
//import java.util.ArrayList;
//import java.util.Collection;
//import java.util.List;
//
//@Data
//@Builder
//public class UserI implements UserDetails, Serializable {
//
//    private String userName;
//
//    private String password;
//
//    private List<RoleI> roles;
//
//    @Override
//    public Collection<? extends GrantedAuthority> getAuthorities() {
//        Collection<SimpleGrantedAuthority> auths = new ArrayList<>();
//        roles.forEach(o -> auths.add(new SimpleGrantedAuthority(o.getAuthority())));
//        return auths;
//    }
//
//    @Override
//    public String getPassword() {
//        return this.password;
//    }
//
//    @Override
//    public String getUsername() {
//        return this.userName;
//    }
//
//    @Override
//    public boolean isAccountNonExpired() {
//        return true;
//    }
//
//    @Override
//    public boolean isAccountNonLocked() {
//        return true;
//    }
//
//    @Override
//    public boolean isCredentialsNonExpired() {
//        return true;
//    }
//
//    @Override
//    public boolean isEnabled() {
//        return true;
//    }
//
//    @Override
//    public String toString() {
//        final StringBuilder sb = new StringBuilder("UserI{");
//        sb.append("userName='").append(userName).append('\'');
//        sb.append(", password='").append(password).append('\'');
//        sb.append(", roles=").append(roles);
//        sb.append('}');
//        return sb.toString();
//    }
//}
